System and method for preparing data used to determine advertisements displayed to communications node visitors

ABSTRACT

A method for transacting an advertisement transfer is disclosed which facilitates expressing the rate structure for the individual advertisement as a function of a profile of the individual potential customer; and which is directed to the creation of a mechanism from the vantage of an Internet site that is being visited. It should be appreciated that this must include the participation of other entities in the Internet (such as distributors, clients, intermediary agencies, etc.). The method is for transacting an advertisement transfer, from an advertisement distributor to a visitor, the method including, upon the occurrence of a visitor visitation at a communications node, the communication node performing the steps of: constructing a visitor profile; broadcasting the profile to at least one distributor; collecting responses from the at least one distributor; selecting a response from the at least one responding distributor; contracting, between the node and the at least one distributor of the selected response, a transference of an advertisement from the distributor to the visitor; and effecting a transfer of the advertisement to the visitor.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of application Ser. No. 09/473,078,filed Dec. 28, 1999 and also entitled A METHOD FOR TRANSACTING ANADVERTISEMENT TRANSFER, which itself claims priority from IsraelApplication No. 127889 filed on Dec. 31, 1998. The disclosures of saidapplication and its entire file wrapper (including all prior artreferences cited therewith) are hereby specifically incorporated hereinby reference in their entirety as if set forth fully herein.Furthermore, a portion of the disclosure of this to patent documentcontains material, which is subject to copyright protection. Thecopyright owner has no objection to the facsimile reproduction by anyoneof the patent document or the patent disclosure, as it appears in thePatent and Trademark Office patent file or records, but otherwisereserves all copyright rights whatsoever.

FIELD OF THE INVENTION

This invention relates to a method for transacting an advertisementtransfer. More specifically, this invention relates to advertisementtransferring in data-communications networks, such as the Internet.

BACKGROUND OF THE INVENTION

Simple advertising involves placing a notice describing an availabilityof goods or services. To be an effective advertisement, the noticeshould be placed where a party, interested in the goods or services,will give attention to the notice. The advertising industry activelycompetes, according to the nature of the notice, to optimize the placingof the notice and to optimize the attention that the notice willreceive.

Until recently, the advertisement industry placed notices as billboards,signs, inclusion in newspapers, direct mailing, and using broadcastmedia. Today the Internet and other interactive electronicdata-communications systems provide new ground for effectiveadvertising.

In this respect, numerous developments in the advertising industry arenoteworthy:

-   -   U.S. Pat. No. 5,774,170 System and method for delivering        targeted advertisements to consumers;    -   U.S. Pat. No. 5,752,238 Consumer-driven electronic information        pricing mechanism;    -   U.S. Pat. No. 5,740,549 Information and advertising distribution        system and method;    -   U.S. Pat. No. 5,664,948 Delivery of data including preloaded        advertising data;    -   U.S. Pat. No. 5,802,299: Interactive system for authoring        hypertext document collections;    -   U.S. Pat. No. 5,761,683: Techniques for changing the behavior of        a link in a hypertext; and    -   U.S. Pat. No. 5,794,210 Attention brokerage.

These technologies (and the like) are being exploited by many types of“advertising distributors” such as:

-   -   Ad reach Networks (e.g. Doubleclick, 24/7 Media, Flycast);    -   Local Networks (e.g. digital cities);    -   Broadcast Networks (e.g. Pointcast, Marimba);    -   Content Networks, (e.g. CNET, Disney, AOL, etc.); and    -   Navigation Hubs (e.g. Yahoo, Excite, Netscape, etc.).

What is nevertheless lacking in today's advertising industry is amechanism which actively matches an individual potential customer withindividual advertisements and then which expresses the rate structurefor the individual advertisement as a function of a profile of theindividual potential customer. Expressing the rate structure for theindividual advertisement, as a function of a profile of the individualpotential customer, is not a described nor a delivered product of any ofthe aforesaid service agencies.

SUMMARY OF THE INVENTION

The method of the present invention facilitates expressing the ratestructure for the individual advertisement as a function of a profile ofthe individual potential customer.

The present invention is directed to the creation of a mechanism fromthe vantage of an Internet site that is being visited. It should beappreciated that this must include the participation of other entitiesin the Internet (such as distributors, clients, intermediary agencies,etc.).

The present invention relates to a method for transacting anadvertisement transfer, from an advertisement distributor to a visitor,the method comprising, upon the occurrence of a visitor visitation at acommunications node, the communication node performing the steps of:

-   -   (One) constructing a visitor profile;    -   (Two) broadcasting the profile to at least one distributor;    -   (Three) collecting responses from the at least one distributor;    -   (Four) selecting a response from the at least one responding        distributor,    -   (Five) contracting, between the node and the at least one        distributor of the selected response, a transference of an        advertisement from the distributor to the visitor, and    -   (Six) effecting a transfer of the advertisement to the visitor.

There are three basic embodiment types according to the presentinvention. Each type relates to a different mercantile perspective oncontracting (step “e”): Auction; Tender; and Future inventory purchase.

Auction:

-   -   The communication node broadcasts a visitor's profile to        distributors.    -   The interested distributors reply to the node with a price offer        for that profile.    -   The highest offer for that profile wins the auction, which the        node conducted for that profile. The node sends the distributor        a message of his winning the auction and also sends a        predetermined protocol or transactional authorization to pass to        the visitor the auctioned advertisement.    -   The distributor sends the advertisement to the visitor and also        sends a confirmation to the node. Alternatively, the visitor        collects the advertisement from the distributor, and a        confirmation is sent to the node.

Tender:

-   -   The communication node receives price offers for predetermined        profile classes from at least one distributors.    -   When a visitor arrives, the node constructs a profile for him.    -   There may be among the price offers that the node has already        received from the distributors, at least one price offer for a        profile or a partial profile like that of the current visitor.        The highest bidder, among the at least one price offers, wins        the tender. The node sends the winning distributor a message of        his winning the tender and also sends a predetermined protocol        or transactional authorization to pass to the visitor the        tendered advertisement    -   The distributor sends the advertisement to the visitor and also        sends a confirmation to the node. Alternatively, the visitor        collects the advertisement from the distributor, and a        confirmation is sent to the node.

Future Inventory Purchase:

Note: here the term “site” is used to relate to the communication nodehaving a visitor visitation. If an “intermediary” is visited, then ittoo will represent a site.

-   -   The distributor sends a query to at least one site, in order to        find out the price they to charge for a specific profile that        the distributor is looking for.    -   The sites return to the distributor the price they charge for        the purchase of future inventory of the profile the distributor        is looking for. According to the preferred embodiment of the        present invention in this variation, the returned price is given        as a function of quantity of profiles, and of planned time of        advertisement campaign. The site might insert inherent discounts        in the price quotes as a function of the scale of the        distributor or for a preferred customer of the node.    -   The distributor runs an optimization program that builds a        purchase plan of how many profiles to buy, from which sites, and        for what price. The optimized purchase plan makes sure that for        a given budget, the plan will include the highest quantity of        profiles possible. The mentioned plan considers predetermined        priorities and restrictions. For example, a specific percentage        of the purchased inventory must come from a specific site that        in the past proved itself as a good source for buyers for that        advertiser.    -   The purchase plan is executed by sending requests to the sites        in the plan having quotes of the amount of profiles that the        distributor wants to purchase, the scheduled time of campaign,        and the price that will be paid. The price is just for clarity        purpose since it was the outcome of the offer sent by the site.    -   The sites send confirmation to the distributor.

Furthermore, the present invention relates to a device for transactingan advertisement transfer, from an advertisement distributor to avisitor, upon the occurrence of a visitor visitation at a communicationsnode, comprising a sequentially linked series of modules:

-   -   (One) a first module for constructing a visitor profile;    -   (Two) a second module for broadcasting the profile to at least        one distributor,    -   (Three) a third module for collecting responses from the at        least one distributor,    -   (Four) a fourth module for selecting a response from the at        least one responding distributors;    -   (Five) a fifth module for contracting, between the node and the        at least one distributor of the selected response, a        transference of an advertisement from the distributor to the        visitor, and    -   (Six) a sixth module for effecting a transfer of the        advertisement to the visitor.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to understand the invention and to see how it may be carriedout in practice, a preferred embodiment will now be described, by way ofnon-limiting example only, with reference to the accompanying drawings,in which:

FIG. 1 illustrates an organizational chart for basic advertisementtransfer transacting;

FIG. 2 illustrates an organizational chart for centralized servicing ofadvertisement transfer transacting;

FIG. 3 illustrates equivalent-level parallel-structuring between anadvertiser sector and a distributor sector,

FIG. 4 illustrates a typical hierarchical regional stratificationorganization;

FIG. 5 illustrates a schematic diagram of bid attributes;

FIG. 6 illustrates a hierarchical structuring for a new offer,

FIG. 7 illustrates a listing of bids following the organizationpresented in FIG. 6;

FIG. 8 illustrates a typical matching tree;

FIG. 9 a schematic diagram of the device of the present invention; and

FIG. 10 is a schematic drawing of a device for transacting anadvertising transfer.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

In the context of the present invention, a “communications node” is theserver of an Internet site or is a theoretical pairing of the server ofthe Internet site with the server of an “intermediary” site, or thelike. Equivalently, according to the present invention, a “communicationnode” may be an apparatus in a data-communications transfer architecturewherein is located automatic data processing or like computer relatedtask processes, or may be a wired or wireless communications networkrouting juncture. Furthermore, in the context of other applicablecommunications architectures, a communications node is a web-TV contentprovider, a multi-media contents provider, or any intermediary purveyortransferring these contents.

In the context of the present invention, a “distributor” is acontracting agent responsible for assigning at least one advertisementto a specific medium: for example, placing a banner on a web page,placing a notice for sale on an accessible index entry, a contentreferral or an advertisement. In the context of the present invention,the payment could be for showing an ad to the visitor with the profilelooked after by the distributor, or for that visitor clicking thedistributor's ad and visiting the distributor's site; or for thatvisitor giving information about himself to the distributor whetherthrough the ad or on the distributor's site after reaching the site byclicking the ad; or for that visitor downloading a software from thedistributor, or for that visitor buying a merchandise from thedistributor; and so forth.

The present invention relates to a method for transacting anadvertisement transfer, from an advertisement distributor to a visitor,the method comprising, upon the occurrence of a visitor visitation at acommunications node, the communication node performing the steps of:

-   -   (One) constructing a visitor profile;    -   (Two) broadcasting the profile to at least one distributor;    -   (Three) collecting responses from the at least one distributor,    -   (Four) selecting a response from the at least one responding        distributors;    -   (Five) contracting, between the node and the at least one        distributor of the selected response, a transference of an        advertisement from the distributor to the visitor, and    -   (Six) effecting a transfer of the advertisement to the visitor.

In general, the transactional universe of the Internet may be describedas including visitors, sites that they visit, and distributors whoprovide network advertisements for viewing by the visitors. Thetransferring, per se, is not an essential feature of the present methodwherein selecting is in order to facilitate such an eventual transfer.

Visitors are normally individuals who elect to view an Internet page. Inmost circumstances, this election is facilitated by following ahyperlink from some other Internet page, which has redirected thepresent elected viewing. Sometimes, this election is done with the aidof a search engine, while other times the user elects an Internet pageto view by choosing from a personal list of hyperlinks. Of somewhatlesser importance, a visitor may be a “robotic Internet tourist” such asan agent, a search engine, an auditing or monitoring program, etc.

Sites which are visited are Internet HTML pages (or VRML “pages” or thelike) which generally reside in server accessible data storage archives.These sites often include hyperlink references for allowing a visitor tosimultaneously view external content items from other Internetaddresses. Presently, the most widely used reference inclusion is foradvertisement banners. The content of these banners is not included atthe site. Rather the site includes an Internet address for the banner,and the visitor's software visits the banner to bring a copy of it forinclusion into the overall site viewing.

Often, banners are grouped into cyclically repeating aggregations by anadvertisement distributor. The distributor establishes an Internet sitefor downloading banners. Furthermore, the distributor effects asubstitution of the content of this Internet site on a frequent basis.The result is that the visitor will view a different banner (insertedinto a site) virtually each time he accesses that site. Clearly, thereference inclusion of the site is to a dynamic advertisement managementdistributor.

FIG. 1 is an organizational chart for basic advertisement transfertransacting. For schematic clarity, the topologically complex Internethas been represented as having three strata. The lower stratum is forvisitors, the central stratum is for sites, and the upper stratum is fordistributors. Actually, the visitors, sites, and distributors areclients or servers or memory storage locations accessible therein.

Here the “Visitor” 11 visits “Site 3” 12; site 3 builds the visitorprofile and broadcasts it to advertisement Network 1-n (distributors)13-15; advertisement “Network 2” 14 wins the contract; and provides thevisitor with the “Ad” 16.

FIG. 2 is an organizational chart for centralized servicing ofadvertisement transfer transacting. Here the “Visitor” 21 visits “Site3” 22; “site 3” builds the visitor profile and transfers it to theintermediary 23. The intermediary enhances the profile and broadcasts itto advertisement Network 1-n (distributors) 24-26; advertisement“Network 1” 24 wins the contract and provides the visitor with the “Ad”27.

According to an embodiment of the present invention, the communicationsnode collects generalized response descriptors from the at least onedistributor, and the broadcasting (step b) is done internally using thecollected descriptors as proxy for the at least one distributor.

For example, any entity that owns an advertisement distributingmechanism, such as advertisement management software, can become adistributor. Nevertheless, the typical distributor will probably be oneof the following:

-   -   An advertiser wishing to integrate the vertical chain between        him and the visitor;    -   An advertising agency wishing to cut down advertisement        distribution' costs;    -   An interactive advertising agency wishing to cut down the        advertisement distribution costs;    -   Advertisement Network; or    -   Content Providers wishing to expand the reach they offer their        advertisers by becoming distributors to other content providers.

Economically, creating value has been described as a logistics compositemodel called the value chain, which is a series of value-addingactivities that connect a company's supply-side with its demand-side.The model treats information as a support element and not as a source ofvalue itself. An integrated suite of value chain management solutions isdesigned to synchronize demand opportunities with supply constraints andlogistics operations. In the context of information commerce, the valuechain model is facile for structuring the electronic advertisementtransaction processes of the present invention.

Turning to FIG. 3, there is a vertical value chain from the advertiser31 to an advertising agency 32 to an interactive advertising agency 33to an advertising network 34 to a virtual matching center (not shown) toa content provider 35 to a visitor 36. In parallel there is a valuechain having a distributor 37 at the top and a communications node 38below. In the context of the understanding of the present invention, thedistributor has transaction interaction with the advertising network,and the communications node has transaction interaction with the virtualmatching center (according to the preferred embodiment) or to thecontent provider. Sometimes there is a media buyer 39 who can be between33 and 34; which may alternatively be included in other segments of thevertical chain 31-33.

According to an embodiment of the present invention, the visitor profileincludes at least one item selected from: content's categories of thecontent the visitor requested or is watching; key words, which classifythe content the visitor requested or is watching; Time of day relativeto server, Derivatives of the visitor's IP address, e.g., Domain;Geographic location of the visitor's ISP (Internet Service Provider) orOSP (On line Service Provider), Geographic location of the visitor'scompany or organization if connected through a permanent point to pointconnection, Time of day relative to user as a derivative of hisgeographic location, Internet Service Provider (ISP), On-line ServiceProvider (OSP); Browser type; Operating system; or SIC code.

For example, Geographic location of the visitor's ISP (Internet ServiceProvider) or OSP (On line Service Provider) if connected through dialmodem or cable modem; or Geographic location of the visitor's company ororganization if connected through a permanent point to point connection.In that case additional information from some databases might be givenon the visitor's organization such as: company's revenues and number ofemployees.

There are also the possibilities of enhancing the visitor profile usingdatabases connected to the system to provide additional informationabout the visitor, which might be available. This information is dividedinto non-volunteered information and volunteered information.

Non-volunteered information is information about the visitor's historyin the site or other sites connected to the same network or sites thatare connected to the same global database. Such history may include allthe immediate information available on the user at the time of thesevisits, products he was interested in or bought, advertisements heclicked on.

Volunteered information is any information the visitor might have givenout of his own free-will, such as demographic (or psycho-graphic)information, including: gender; age; annual household income; number,gender, age and status of household members; occupation; Hobbies andtendencies; or Name and address.

According to the preferred embodiment of the present invention, the nodeor the distributor or the intermediary is audited. In the context of thepresent invention, “Auditing” relates to: measurement of web traffic;analysis of online advertisement campaign results; analysis oftransaction data; or analysis of customer profiles. Furthermore,auditing may include: verification of any combination of the above;analysis of any combination of the above; or analysis of any bills thatare derivatives of the above.

The analysis of the above is done in off line mode or real time mode;and is made through the perspective of one of the following: Site,advertisements distributor, online campaign manager, or e-commercemerchant. Examples of companies that perform some or all of the aboveare: I/PRO, MediaMetrix and Andromedia.

According to the preferred embodiment of the present invention, thebroadcasting, contracting, or transferring is encrypted.

According to the present invention, the advertisements are selected fromthe list: banners, text, HTML page address pointers, text, hypertext,audio content, visual content, or any combination thereof. Equivalently,the advertisement may be of any kind and size: static, animated, DHTML,multimedia—video and/or audio, three dimensional, VRML, interstitial,interactive banner, “transitional” interstitial (a multimediaadvertisement in a pop up window between page views), InfoAd, Active Ad,expanding banners, nano site or mini site in a banner.

According to the preferred embodiment of the present invention, themethod further includes the construction of at least one of thefollowing: an e-mail list, or a database. Equivalently, the constructionis of at least one of the following: an e-mail list, traffic analysis ofthe site which is enhanced by the additional information about thevisitors' profiles, databases of potential customers to differentproducts according to their profiles.

According to one embodiment of the present invention, the selecting(step “d”) is of multiple responses.

According to one embodiment of the present invention, the contracting(step “e”) is with any responding distributor bidding above apredetermined threshold price, and the threshold price is not broadcast.

According to one embodiment of the present invention, the visitorsubmits a self-disclosure profile to the node. According to oneembodiment of the present invention, the visitor profile is constructedfrom header information in the visitor's transmission. According to oneembodiment of the present invention, a rate structure for thecontracting is determined according to a matching between the visitor'sprofile and an advertisement specification in the response.

According to one embodiment of the present invention, the contractingincludes at least one transaction segment describing the visitor,describing the node, describing the advertisement, and describing thedistributor. For example, the at least one segment includes a Booleanlogic section, a rate structure logic, disclosure information, ordisclosure logic information.

According to one embodiment of the present invention, the method furtherincludes a follow-up visit by the visitor to an address associated withthe transacted advertisement. Furthermore, the follow-up visit may beaudited; the audit may include an item selected from the list: apurchase by the visitor of a service or commodity at a “site” specifiedin the transferred advertisement, or pointed to therefrom. According toanother enhanced variation of the present invention, the node or hisauthorized agent receives a payment resulting from the visitor'spurchase at a site specified in the transferred advertisement, orpointed to therefrom.

According to one embodiment of the present invention, the method furtherincludes an intermediary between the node having a visitation and the atleast one distributor, and the intermediary is for effecting additionsto the visitor profile constructed by the node in step “a” or is foreffecting any of steps “b” through “f”.

Both using and in the absence of the intermediary, according to anenhanced embodiment of the present invention, the visitor discloses hisnode-appropriate cookie and said cookie is analyzed by the node, theintermediary, the distributor, or an address associated with thetransacted advertisement. Another enhanced embodiment of the presentinvention may include: the visitor specifies a self imposed censorshiprestriction in order to void acceptance of certain classes ofadvertising, or in order to designate a class of advertisingpreferences; or constructing a visitor profile includes correlatingknown visitor identification parameters with a database.

Further enhanced embodiments of the present invention include: the logicprotocol of the selecting is according to a relational database querysemantic; the visitor is associated with a commercial enterprise, asearch engine, an automaton, a corporate person, or a human; effecting,contracting, or constructing includes recording or storingadvertisements transferred to the visitor for intentional subsequenttransfer to the same visitor or for intentional avoidance of subsequenttransfer to the same visitor.

The present invention also relates to a device for transacting anadvertisement transfer, from an advertisement distributor to a visitor,upon the occurrence of a visitor visitation at a communications node,comprising a sequentially linked series of modules:

-   -   (One) a first module for constructing a visitor profile;    -   (Two) a second module for broadcasting the profile to at least        one distributor;    -   (Three) a third module for collecting responses from the at        least one distributor,    -   (Four) a fourth module for selecting a response from the at        least one responding distributors;    -   (Five) a fifth module for contracting, between the node and the        at least one distributor of the selected response, a        transference of an advertisement from the distributor to the        visitor, and    -   (Six) a sixth module for effecting a transfer of the        advertisement to the visitor.

According to the preferred embodiment, the modules are distributed orfragmented between more than one computer processor or networkcommunications server or network communications router.

According to the preferred embodiment, there is further provided atleast one memory media containing data collected or data constructed inat least one of the modules.

According to the preferred embodiment, there is further included adistributor response module for optimizing a selection from a pluralityof broadcast profiles.

Furthermore, according to the preferred embodiment, the optimizing isaccording to a fixed budget, or according to an advertisement campaignmodel, or according to subsequent modifications thereto.

The preferred embodiment of the present invention may be brieflydescribed as allowing:

-   -   The distributor can choose the number of advertisement exposures        for a visitor with a specific profile.    -   The system will make sure it will be done for any one person        with such a profile.    -   There is no need to store or record the advertisement since a        distributor gives a price offer for a specific profile and        intends to show a specific advertisement for that profile. After        a given number of advertisement exposures to a specific person,        the distributor will no longer bid for that person although        suited for the required profile.    -   The person is identified by a cookie that differentiates two        people with the same profile but different number of exposures        to the same ad.    -   A distributor is constantly updated in real time by the        node/nodes (node in the intermediary architecture and nodes in        the distributed architecture) that are members of its network,        of the winning bids for different profiles in the sites.    -   The distributor can choose to change its price offers for        different profiles in different sites in order to change its        odds for winning.    -   The distributor can run an optimization program that will change        the price offers in real time. The optimization factors are the        campaign progression and the budget spending (in general the        factors are based on the advertising model).    -   A visitor can limit his profile by approaching the site he        visits and specifying restrictions to his profile, by his own        choice or demands. The visitor can point out whether he wants        the restrictions to be for the communication node use only or        for the intermediary or for the distributor or any combination        thereof. If the restrictions are for the intermediary or for the        distributor the communication node will point it out to the        intermediary.    -   Furthermore, there is an opportunity to pay for the visitor's        name and address, without need to refer to this specific since        the name and address are among the volunteered information and        therefore a price can be set for them as for any other component        composing the profile.    -   A real time updated bidding system among unlimited number of        Suppliers and Mediators\Buyers for electronic or tangible        assets\commodities (hereafter will be referred as the ‘system’).    -   The system makes the market for those assets economically        efficient as follows:        -   Enabling “Many-to-Many” business relations among all the            participating sites;        -   Each Mediator\Buyer can compete for every asset offered by a            Supplier,    -   Each Mediator\Buyer can update its bid in real time according to        information about the winning bids in the system.

For example: A Mediator conveys to the system a bid of a Buyer thatincludes a price list for the asset he is looking for according to thepotential characteristics of the asset. When a Supplier has an asset orcommodity to sell, he conveys its characteristics to the system(hereafter we will refer to the asset's characteristics as the asset'sprofile). The system performs a semi-real time tender over the asset'sprofile between the pre given bids (it is semi real time since thetender is performed over already existing bids in the system). Thehighest bidder is notified of his winning and the whereabouts of theasset. The rest of the bidders and Mediators connected to the system arenotified of the asset's profile that just been sold and its winningbidding price. The Mediators\Buyers, in return to the information canupdate their bids in real time using manually intervention or automaticoptimization software.

Equivalently, the preferred embodiment of the present invention may bebriefly described as allowing Internet advertising where the:

-   -   Buyers are Advertisers or Advertising agencies or media buyers        (entities in the value chain may integrate forward or backward);    -   Mediators are advertisement Networks; (The advertiser's may        accordingly be further provided with ability to enter a price        limit for a desired profile in order to enhance his winning        probability or strategically there may be provided facilities        for expressing a priority given to bigger budgets in the case of        similar price offers.).    -   Suppliers are Publishers or Content Providers sites, or a server        of an ISP, etc.;    -   The assets are Visitors' profiles of visitors to the Publishers'        sites; or even    -   Commodities selling (electronic commodities or tangible        commodities).

Furthermore, implementations may include: a Central system with a starconfiguration which connects all participating sites: Suppliers;Mediators\Buyers; or a distributed system where the tenders are takingplace at the Suppliers locations according to pre given bids byMediators\Buyers.

A Description of Algorithmic Procedures Used to Implement the PreferredEmbodiment of the Method of the Present Invention

This description presents an efficient method of creating aprofile-matching tree. This matching tree is a memory-cached structureused for efficiently matching an incoming user profile to the highestbidder using an online tender or to a buyer who bought such a profile inadvance (referred as ‘Future Inventory Purchase’ or ‘FIP’). For example,an implementation of a real time tender over a visitor's profile may beaccording to predefined price offers (bids) which are supplied byadvertisers through their representatives. The system allows a pricelimit to be set (in accordance with a fixed or a dynamic advertisingbudget), such that the advertiser specifies a maximum price it iswilling to pay to the visitor's ad space owner. Likewise, in the eventthat two or more distributors are equally well suited to convey theadvertisement, provision may be made to give preference to thedistributor having the largest campaign budget or turnover or the like.

There are three stages in this process:

-   -   Creating a price offer (bid) by the advertiser. The price offer        is represented by a collection of attributes and attribute        values. Each such collection represents a number of profile        combinations according to the logic defined in this collection.        Using a tree of attribute values makes the process of defining        the price offer very easy and intuitive for the user.    -   Building a matching tree in a batch process. This matching tree        contains all possible profiles for which an advertiser is        willing to pay. Every node in the to matching tree contains a        list of all relevant bids sorted in descending order by their        prices.    -   In real time, for every incoming visitor's profile, the highest        bid for the visitor is found by searching the matching tree. The        highest bidder has the right to present his advertisement to        that visitor.

As part of the above described process of a real-time matching betweenan incoming visitor's profile to a profile required by an advertiser,the advertiser has the alternative of buying in advance the visitor'sprofile he is looking for, without participating in a tender.

Introduction

A software engine, according to the present invention, supplies a methodfor efficient allocation of a visitor's advertisement space according toits profile by conducting an online tender among all advertisers thatare connected to the system via their representatives, the advertisementnetworks, outsourcing services or privately owned advertisementmanagement software. Each advertiser presents a collection ofadvertisement campaigns intended for the visitors. There are certaincriteria for each advertisement campaign that are based on the requiredvisitor's profile. These criteria determine which visitor will get anadvertisement of this campaign. For every advertisement campaign, theadvertiser's price offer includes a set of required profiles that needsto be matched with any visitor's profile. The advertiser places pricetags and logic tags on every requested characteristic, thus creating acombination of user profiles.

The collection of all price offers, sent or otherwise established by theadvertisers, creates a profile pool. For every visitor which is directedto the system there is a three-stage process:

-   -   Finding the price offers that matches the incoming visitor's        profile.    -   Of all matching price offers finding the one with the highest        price.    -   Allocating the visitor's advertisement space to the matched        advertiser from those found having the highest price.

As part of the above process, the method of the present invention allowsadvertisers to receive required profiles without participating in atender. The advertiser purchases a future inventory of visitors'profiles from sites using the method of the present invention. In the“finding the one with the highest price” stage, in front of the priceoffers participating in the tender, a priority will be given to anadvertiser who bought such a profile in advance. If such a profile wasbought in advance by an advertiser, first, the visitor's advertisementspace will be allocated to him in the allocating stage.

The load is produced by the visitors' traffic to Internet sites, thuscreating a potentially enormous number of hits. The matching processmust take a minimal time to calculate (see use of constraints andoptimizations below).

In order to minimize the search, match and allocation time, a matchingtree is built, which serves as a structure for the search and matchoperation. The tree is modified for every addition or extraction of aprice offer. Using matching tree, the operation of finding the bestmatch is merely a question of searching the matching tree.

More specifically, the process will be described in the followingsections:

-   -   Creating and spreading the price offer,    -   Constructing and managing a matching tree;    -   Searching the matching tree for the Profile; and    -   Allocating the visitor's advertisement space.

Nomenclature Examples

-   -   Price Offer/Bid—A collection of attributes or attributes' values        which form a combination of visitors' profiles:    -   Attribute—An attribute is used for describing a user        characteristic using a value from the attribute's set of values.        Each attribute has a tree of its own unique values. For example,        the Gender attribute has the values: such as Male, Female (one        level tree). The Location attribute has a tree of value, where        Europe can be a value in the tree, England and France can be sub        values of Europe (its children in the value tree), and London        can be a sub value of England.    -   Attribute Order—All attributes are organized in a predefined        ordered vector. Each attribute has its own unique order, which        is determined by the position of the attribute in the vector.        The order is used for the process of building and searching the        matching tree. Any collection of attributes is usually sorted        according to their unique order.    -   Category Attribute—An attribute whose values can be represented        by a final set of known elements (e.g. Gender, Location).    -   Numeric Attribute—An attribute whose values can be represented        by two numbers which form a range (e.g. Age, Income).    -   Value—An element that is assigned to an attribute's value tree.    -   Logic tag—Any attribute or value can have a logic tag that can        be one of the following:        -   Must—The visitor must have the attribute or value.        -   Must not—The visitor must not have this value (for values            only).        -   Note: Must “logic” cannot be set on multiple values that            shares the same attribute.    -   Price—can be set for each value (that does not have a “Must Not”        tag). Values that have a price and do not have any logic tags,        are optional values that may or may not exist in a matching        profile (the value is not a requirement set by the advertiser,        but the advertiser is willing to pay more for a visitor's        profile that contains this value).

The price offer can have a maximum price that represents an upper boundthat the advertiser is willing to pay for any given profile (note that asingle price offer can over different prices for different profilesaccording to the attributes in the incoming profile). If the sum ofprices for profile attributes results in a price higher than the maximumprice, then the price for this combination of attribute values will beset to the maximum price.

-   -   Visitor's Profile—This is the collection of pairs        Attribute=Value for a current visitor. The Attributes in this        collection are sorted by the attribute's predefined order. This        collection represents the information known about the incoming        visitor.    -   Matching Tree Branch—Each branch in the matching tree represents        a possible collection of values that were extracted from price        offer(s), and have a price in the system (zero can be also a        price for profiles which include a value with a Must Not logic).        This collection forms a possible visitor's profile.    -   Value trees and Inheritance—the values of an attribute are        presented and to managed as a hierarchical structure.

Descendant values inherit their ancestor's value (in the hierarchicalstructure) price and logic tags. For example, the Location attribute canhave the values: Asia, Europe, Africa etc. Each of these continents havedescendants country values that inherit the continents prices and logictags and so on (states, cities etc.). If an advertiser places a price Pxon Europe, then all the sub values of Europe will have the same pricePx. If a visitor's profile contains the location London, then theadvertiser will be willing to pay a Px price for this attribute.Similarly, a Must tag set on the Sports value of the Content attributedetermines that the visitor has to have a content value that is Sportsor a descendant of Sports (Basketball will be accepted as well).

Overview of the Price Offer Phase

Creating a price offer—The advertiser/media buyer/sales person uses aGUI (graphical user interface) to enter a valid price offer. There aretwo types of attributes allowed in the system.

Category attributes—The attribute is a category with predefined values.The values are all named. For example: attribute Gender with the valuesMale, Female.

Numeric Attributes—These are also category attributes with predefinednumeric ranges. For example, Income is such an attribute, Age isanother.

All attributes have predefined values. The values are determinedaccording to well known conventions that make it easier to measure them.Also, all hierarchies are predefined and known in advance. Theadvertiser may set the prices and logic tags for these predefinedattributes/values, and may not be able to define other attributes ofvalues.

The available attributes are presented in a tree-like view. This meansthat there is a predefined hierarchy between the values. The hierarchyis always defined for a specific attribute. For example under theattribute Location we can define the following values:

Turning to FIG. 4, a root node “location” 41 is divided into continents42, therein into countries 43, and therein into cities 44. All thesevalues will be declared “under” the Location attribute, as a hierarchy.

An important attribute, which has a complex value tree, is the contentattribute.

For every attribute and value, a logic tag can be attached:

‘Must’—This logic indicates that the attribute or value must exist inthe visitor's profile or else the visitor will be of no interest to thisprice offer. If the ‘Must’ is put on a value (for example ‘Sports’) itmeans that the specific value must exist in the visitor's profile, or adescendant value of this value (for example, ‘Basketball’). If the‘Must’ is put on the attribute itself then it means that “one” of thetagged values of this attribute must appear in any visitor's profile.The tagged values are any of the values which belong to the attributeand have a price tag attached.

‘Must Not’—The logic means that the “value” must not exist in theincoming profile. This logic is only acceptable when put over values andnot attributes.

The user should provide a price tag for all values of interest. It isimportant to note that if a value was set to ‘Must’, a price tag onother values which belongs to the same attribute can be placed only ifthese values are value-tree descendants of the Must value.

The user can select the price offer to be valid in certain sites, orexclude the offer from certain sites. In addition certain sites can beattached with a special price tag which indicates that the profile'sprice should be increased or decreased by a certain percentage. Forcingor excluding sites is effected by adding the specific site as anattribute with a Must/Must Not logic.

A maximum price can be set for the profile. In this case, no matter howmuch was the total price of the attribute combination, it will notexceed the maximum price.

The result is a collection of bids B1 . . . Bn, described as following:

Every Bi has a collection of attributes with Must tags, and a collectionof values with price tags, Must tags, and Must Not tags. Also, every Bihas a max price Max-Bi.

Spreading the Price Offer

This is the first phase in the construction of the search tree. Each bidBi, is spread into a collection of “profiles” that match the bid. These“profiles” are actually a series of attribute values that form a branchin the matching tree. The visitor's profile itself may contain otherattributes' values that are of no interest to this bid, but may stillmatch the bid. The bid spreading is done in the following way:

-   -   Create a Vector “A” of Bid Attributes that is sorted by an        attribute predefined order (the “unique” order described above).        A Bid Attribute holds an attribute, an optional Must tag, and a        vector of values. Bid Attributes in vector “A” are built for        each one of the attributes with a Must tag in the bid, and for        any additional attributes whose values appear in the bid Bi with        price tags, Must tags or Must Not tags. This results in a vector        of bid attributes Al . . . Am.    -   For each bid attribute Aj (1<=j<==m) create a vector of values.        Each Aj will include all the values in the bid Bi that        correspond to the attribute Aj. Note that every attribute must        have at least one value that corresponds to it.    -   Attach Must tag to each bid attribute Aj if the corresponding        attribute was marked with Must tag in the bid, or if one of its        values was marked with Must tag (there can be only one Must        value to that bid attribute).

FIG. 5 is a diagram of bid attributes, where each bid attribute 51 (e.g.A₁, A_(j), . . . A_(m)) holds its corresponding attribute, an optionalMust tag, and a vector of values, e.g. 52, 53, 54.

This structure is used in order to create all combinations of attributevalues that actually, define the profiles.

To construct all the profile combinations follow these two steps:

Step one: find which bid attributes will be part of the next attributecombination. This is done in the following way:

Suppose there are p free (non Must) bid attributes in the vector “A”;Then the total number of subsets of these free attributes (sorted intheir predefined order) is 2^(P).

-   -   Run a counter from 0 to 2^(P)-1. We will use the binary        representation of this counter to determine which bid attributes        will take part in the next attribute combination. For each        iteration of the counter, select the bid attributes that will        take part in the next combination vector in the following way:

For each attribute Aj in the vector “A”:

If Aj has a Must tag, select it to the next combination.

Otherwise, Aj is a free bid attribute. Let k be its index among the freebid attributes (0<=k<p). Select the attribute Aj if and only if thek-bit in the binary representation of the counter is set to 1.

Note that each attribute combination contains all the bid attributesthat were marked with Must tag, and a subset of “free” attributes thatwere selected according to the binary representation of the counter.

Step two: For each attribute combination that was selected in step one,generate all the profile combinations of the selected attributes (eachprofile is represented by a vector of values).

It should be recalled that every bid attribute holds a vector of valuesthat correspond to their attribute. If a value V has a Must tag in thebid, its bid attribute Aj will also be marked with a Must tag, and Vwill be its only must value in the values vector. If an attribute Aj wasmarked with a Must tag in the bid, it will be marked with a Must tag inits bid attribute, and it may hold several values, none of them are Mustvalues.

Each profile combination contains one value from each attribute that wasselected (and always one value of any Must attribute).

This is done by cycling between the values of each selected bidattribute (note that for a Must value V, its bid attribute is alsomarked as Must in the vector A. If there are additional values to thesame attribute, then V will not take part in all the combinations).

The cycling is done using a NextValueIndex for each bid attribute, thatpoints to the next value of the bid attribute that will be selected forthe next profile combination (all indexes are initialized to 0—the indexof the first value).

Increasing the NextValueIndex will set the index to point to the nextvalue in the bid attribute. If the NextValueIndex is set to the lastvalue, increasing it will set the index to the first value and a cycleis completed.

To generate all profile combinations for the selected bid attributes,perform the following steps for each selected bid attribute until thelast bid attribute (of the selected bid attributes) has finished a cycle(then select a new attribute combinations):

Creating a Single Profile Combination:

For each selected bid attribute in the current attribute combination:

Add the next value that the attribute's NextValueIndex points to for thenext profile combination.

If the previous bid attribute completed a cycle, or this is the firstbid attribute in the selected attribute combination, move theNextValueIndex to the next value.

If the last attribute in the attribute combination completed a cyclethen return to step one—and choose another attribute combination (subsetof attributes).

Determining the Price of Each Profile Combination:

A given bid is spread into a large number of profile combinations. Eachof these combinations may have a different price. The price of a profilecombination is the sum of prices for all the values in the combination.The sum of prices of values with Must tags is a fixed price for everycombination and can be referred to as a base price of the bid.

The base price of a bid is the price that the advertiser is willing topay for every visitor whose profile has all the required values of thebid (the Must values of the bid). Any additional (optional) values in acombination can increase the price for a specific profile.

If a bid has a Must value and additional values of the same attribute(any such additional values must be a value-tree descendant of the Mustvalue), then some combinations may not contain the Must value itself,but rather its descendant value instead. Nevertheless, the base pricewill include the Must value, even if it is not in the combination. Forexample, if a bid offers 3¢ for ‘Sports’ with a Must tag, and 2¢ for‘Basketball’ as optional (both of the ‘Content’ attribute), then somecombinations will include ‘Sports’ with a price of 3¢ and others willinclude ‘Basketball’ with a price of 5¢.

In addition, every bid can have a maximum price for which any profilecombination may not exceed. If the price for a profile combinationexceeds the maximal price, then the price will be set to the maximalprice.

While creating the combination of values, if one of the values in thecombination is a Must Not value, then the price Px will be set to 0, andno other values will be entered to the combination after the Must Notvalue.

If one of the attributes is the Site attribute, the price may varyaccording to the site by a predefined factor q (Site is a specialattribute): Px=(1+q)Px. The factor q can be negative, meaning that forthis site the advertiser is willing to pay less!

The result of the spreading phase is a collection of profile combinationvectors, with a price for each profile combination.

It should be noted that dealing this way with the Must Not values mayresult in some identical vectors. These vectors will be overwrittenwhile inserting them into the matching tree.

Each combination that was created is actually a branch in the MatchingTree, which corresponds to the bid Bi. The process should be repeatedfor every bid.

Here is a simple example of spreading a bid:

Suppose a bid contains the following:

Male-Must-3¢ Age (18-35)-5¢ Location-Must. England-5¢ France-3¢Basketball-1¢ Football-2¢ Tennis-3¢

The vector “A” of bid attributes will contain the following:

Gender (Must) Age Location(Must) Content Male (Must, 3¢) 18-35 (5¢)England(5¢) Basketball (1¢) France (3¢) Football (2¢) Tennis (3¢)

The attribute combinations will be:

-   -   (Gender, Location); or (Gender, Age, Location); or (Gender,        Location, Content); or (Gender, Age, Location, Content).

(Note that there are total of 4 attribute combinations: 2 brought to thepower of the number of “free” attributes).

Now, for each of the attribute combination, we need to generate all thecombinations of values (which make a “profile combination”).

In this example we will do so only with the (Gender, Location, Content)combination.

The values for this attribute combination are:

Male, England, Basketball (9¢)

Male, France, Basketball (7¢)

Male, England, Football (10¢)

Male, France, Football (8¢)

Male, England, Tennis (11¢)

Male, France, Tennis (9¢)

Constructing and Managing the Matching Tree

Adding a New Bid

Adding a new bid to the matching tree is a process that is done by:

-   -   creating a branch for each one of the bid's profile        combinations, and    -   adding the bid's number and the combination's price to a list        that is sorted in descending order by price, and resides at the        last node of the branch.    -   (a branch may already exist for a given combination, in this        case follow the branch to the combination's last value, and        insert the bid's code and the combination's price in the last        node that was reached).

While inserting the bid's combination, the bid may be inserted intoother branches as well, and sub tree may be copied under newly creatednodes. In addition, each bid keeps a list called Bid's Nodes thatcontains all the nodes that the bid resides in, and used for fastremoval of bids from the tree.

The process of adding a new bid to the tree starts by spreading the bidinto a set of profile combinations. Each profile combination is theninserted into the tree, by reading all its values (in a predefinedorder) while moving down the tree and performing several operations onthe tree.

The following description uses current node and current value to definethe current state of the insertion process. For each profilecombination, the process of insertion starts with the tree root as thecurrent node and the first value of the profile combination as thecurrent value. When adding the current value (e.g. England) as a childto the current node, check if other children of the current node are“value tree ancestors” of the current value (e.g. Europe), or “valuetree descendants” of the current value (e.g. London). Also check thepredefined attribute order of all the other children (in comparison withthe order of the current value) and update the matching treeaccordingly.

Here is a schematic description of the process:

1. For each of the bid's profile combination:

1.2. Current node=matching tree root.

1.3. For each value in the combination vector sorted by the predefinedorder of the value's attribute (referred to as Current Value):

1.3.1 If current node has a child that equals the profile's currentvalue, then set next child to this child. Go to 1.3.3.

1.3.2 Else (No child equals the current value):

Create a new child with the current value, to the current node. And markit as the next child.

Climb the value-tree of the current value, find the first value of thevalue's ancestors (by order of climbing) that matches one of the currentnode's children. If such value exists, then copy the matching child'ssub tree under the newly created child.

1.33. For each of the current node's children:

If the child is a descendant in the value tree of the current value,then recursively enter the rest of the profile's values (the profile'stail without the current value) to this child.

If the child's predefined attribute order (unique order—discussed above)is greater than the current value order, and the current node is a newlycreated node with no children, then copy the sub tree of the child(including the child itself) under the newly created node.

If the child's predefined attribute order is smaller than the order ofthe current value, then recursively enter the profile's tail (includingthe current value) to this child.

Set the current node to the next child.

Continue to the next value (1.3).

1.4. After all the profiles' values were entered into the matching tree,the bid and the price of the profile combination will be inserted intothe Matching Bids list that resides in the current node or into theFuture Inventory Purchase list that also resides in the current node (incase the bid is marked as a future inventory purchase). If the bid isalready in the list with a lower price than the new combination's price,remove the old bid from the list. If the bid is not in the list, insertthe bid with its new price into the list, keeping the list sorted indescending order by price.

Add the current node to the Bid's Nodes list. While adding a bid intothe Matching Bids list or into the Future Inventory Purchase list, makesure that all the descendant nodes of the current node also hold thebid.

Constructing the Matching Tree

For each one of the existing bids, use the “Adding a New Bid” logic, asdescribed above.

Removing a Bid

For each node in the Bid's Nodes list, remove the bid from the node andrecursively remove the bid from all its descendants.

All nodes that have no more bids after the bid was removed from them,and have no children, will be removed from the tree.

Branches that were created by a bid, and hold other bids as a result ofrecursive insertion and sub tree coping, will also be removed from thetree if no other bids specifically referred to these branches.

Updating a Bid

To update bid B1 with bid B2, first apply “Removing a Bid” logic (above)and remove B1 from the Matching Tree. Then apply “Adding a new Bid”logic (above) to add the bid B2.

Searching the Tree and allocating The Visitor's Advertisement Space

When a visitor requests an advertisement from the system, his profile isbuilt. This results in a list of attributes and their values. Theprofile is sorted according to the attribute's order.

Searching the tree is done in the following way:

1. Current node=matching tree root.

2. For each of the values in the visitor's profile, sorted by theattribute's order (referred as current value):

2.1. If the current node has a child that matches the current value:

Set the current node to this child.

Continue to the next value (step 2).

2.2 Else, Climb the value-tree of the current value, find the firstvalue of the value's ancestors (by order of climbing) that matches oneof the current node's children. If such child was found:

Set the current node to this child.

Continue to the next value (step 2).

2.3 If such child wasn't found, continue to the next value (step 2)

The search ends in a matching tree node, after all values in the profilewere checked.

This node holds a list of matching bids and their prices, sorted indescending order by their prices, and a list of future inventorypurchases.

If there are any future inventory purchases, select the first one andallocate the advertiser who bought that profile in advance, theadvertisement space that will be represented to the visitor with thatprofile.

Otherwise, scan the matching bids list by price (in descending order)and check other to constraints for finding the best bids (e.g. checkthat the bid has not expired, or check if the industry of the advertiseris not rejected by the site, etc.). Then, allocate the advertisementspace that will be represented to the visitor with the given profile tothe highest bidder that answers to the additional constraints.

Note that this algorithm enables matching a profile with a set of givenbids in an almost fixed time (the search complexity does not depend onthe number of bids that resides in the tree, but rather on the length ofthe user's profile).

An Example is presented against the background structure presented inFIG. 6. The tree represents a new bid wherein a root 61 has primarycategory branches 62 each of which bifurcates into sub-categories 63. Asample data set (see FIG. 7) is shown 70, listing a plurality of bids,following the organization presented in FIG. 6. The first phase is tospread the bid into possible profile combinations. The only Mustattribute is at the content level. FIG. 8 shows some of the branchesthat are created or inhabited by the above bid. However the organizationof this tree is different than that given in FIG. 6, since the matchingtree simultaneously addresses data organization for numerous specificprice offer combinations. This is only a partial set of the bid'sbranches, and a small part of the entire matching tree that may hold alarge number of bids (of course, many of the branches may inhabitseveral bids).

Searching the Tree and Allocating the visitor's advertisement space

-   -   assume the incoming visitor has the following profile:        content=“Basketball”, Gender=“Female”, Income=“$50-70 k”,        Age=“30-40”, Location=“California”;    -   The above profile is sorted according to the predefined        attribute's order. Content, Gender, Income, Age, Location    -   The search starts with the content at the matching tree's root        81. There is no child for the “Basketball” category. Therefore        look for the first value-tree ancestor of this category, which        is “Sport” 82.    -   In the “Sport” sub tree, start searching for the child “Female”        83. This child exists, so continue the search in the child's sub        tree.    -   Next is “$50-70k”. There is no Income attribute as a child of        this sub tree. This value also does not have any value-tree        ancestor that exists as a child in this sub tree, therefore        continue to the next attribute.    -   Next is “Age 30-40” 84 which exists as a child. Continue to it's        sub tree.    -   Next is “California” which doesn't exist as a child.        “California” has a value-tree ancestor that is “USA” 85.        Therefore find the child “USA”.    -   This is the last value of this profile. In the last node find a        list of all matching bids sorted by their price. The new bid        also resides in this list with the price “17” 86. Select the        highest bid under the given constraints, and allow this bidder        to show its advertisement to the visitor.

Those versed in the art will realize that the above detailed descriptionof a preferred embodiment relates to an implementation on computers of atype which are today normally connected to the Internet. Should acomputer of a higher order computational capacity be used, then thepresent invention would preferably be implemented in a higher orderBoyce-Codd normal form than that which has been described. Whiletransforming data representations from lower to higher normal forms isconceptually straightforward, actual implementation should use a database relational package which has been programmed to optimize therelevant data relationships.

Furthermore, as in all relational data constructions, large userpopulation subscription may weaken implementation response times bycausing underlying NP-complete like characteristics of the datatransactions to effect the entire system. Therefore, even if the presentinvention is implemented on higher order computational equipment, it isadvisable to maintain strict algebraic or combinatorial limits on theprocessing or on the equivalent data structure attributes (of theprofile or the responses) used in the “selecting” of a response from theat least one responding distributors.

The algorithmic implementation strategy presented above supplies amatching of a given profile in a ‘fixed’ time (linear computationapproximated time), thus making it an “optimal-type” algorithm in termsof response time. However, the algorithm implementation faces a scalingproblem in terms of the tree size and its building time. The tree size(and its building time) may grow by up to exponential-time ratios withrespect to the number of bids.

The scaling problem can be reduced and managed using differentconstraints and optimizations. One constraint, that can be used, is toreduce the number of attributes and values, thus significantly reducingthe size of the tree and the time expended in building it.

Some optimizations can be used as well. One approach is to reduce thesize of the tree at the expense of the matching time—between profilesand bids. This can be done, for example, by splitting the matchingprocess itself from a single search to a parallel searches executing onmultiple branches, thus eliminating the need for bids to reside inmultiple branches.

Additional optimization can be gained by altering the structure of thetree. For example, building a tree which holds all values of the sameattribute in the same level, and using a special value in each level forall the bids that did not use that attribute. These bids will reside inthe sub-tree under the special value of the unused attribute. Thespecial value “optimization strategy” reduces the number of searchesrequired to complete a match—by preventing searches for attributes thatwere not bid for.

Another optimization can be applied by taking advantage of the nature ofthe attributes. For example, if there are attributes that are known toappear in every profile, branches that do not hold all those attributeswill not be created.

Turning to FIG. 9, in a data-communications topology 90 having apredetermined protocol (e.g. interne), an advertisement transfertransaction is facilitated between an advertisement distributor 91, avisitor 92, and a communications node 93 where the visitor is visiting(in interactive data-communications). The communications node mayfurther negotiate its processing tasks with other nodes (e.g. 94) andmay use a memory media 95 (e.g. for enhancing a profile) such as aglobal profile database. These nodes (e.g. 91, 92, 93) when transactingthe method of the present invention together comprise a distributedsystem, wherein the communications node is a critical device in thetransacting. However the processing tasks (according to anothervariation of the device of the present invention) are distributedbetween 91 and 93.

FIG. 10 illustrates a schematic drawing of a device 100 for transactingan advertising transfer, from an advertisement distributor to a visitor,upon the occurrence of a visitor visitation at a communications node,comprising a sequentially linked series of modules:

-   -   a first module 101 for constructing a visitor profile;    -   a second module 102 for broadcasting the profile to at least one        distributor;    -   a third module 103 for collecting responses from the at least        one distributor;    -   a fourth module 104 for selecting a response from the at least        one responding distributors;    -   a fifth module 105 for contracting, between the node and the at        least one distributor of the selected response, a transference        of an advertisement from the distributor to the visitor; and    -   a sixth module 106 for effecting a transfer of the advertisement        to the visitor.    -   According to the preferred embodiment of the device of the        present invention, there is further provided at least one memory        media 110 containing data collected or data constructed in at        least one of the modules.    -   According to the preferred embodiment of the device of the        present invention, there is further provided a distributor        response module 120 for optimizing a selection from a plurality        of broadcast profiles.    -   Furthermore, according to the preferred embodiment of the device        of the present invention, the optimizing is according to a fixed        budget, or according to an advertisement campaign model, or        according to subsequent modifications thereto.

Those versed in the art will appreciate that there are many other waysof embodying the method and device of the present invention withoutdeparting from its spirit or scope.

For example, it will be understood that the system according to theinvention may be a suitably programmed computer. Likewise, the inventioncontemplates a computer program being readable by a computer forexecuting the method of the invention. The invention furthercontemplates a machine-readable memory tangibly embodying a program ofinstructions executable by the machine for executing the method of theinvention. In particular, in the case where an intermediary is employed,this may be a suitably programmed computer for allowing selection of anadvertisement distributor in accordance with the invention. It isfurther to be noted that the actual transfer of the advertisement may beeffected either via the intermediary or directly by the selecteddistributor or via any other web server, and is not itself an integrallyrequisite feature of the invention.

1-37. (canceled)
 38. A method for preparing data used in transacting anadvertisement transfer from an advertisement distributor to a visitor,the method performed prior to the occurrence of a visitor visitation ata communications node, the method comprising: (a) receiving over theInternet from at least one advertisement distributor an electronic bidthat includes: (i) a first offer price where a visitor to thecommunications node has a subset of attributes; and (ii) one or moresupplemental offer prices, each for where the visitor has an individualattribute in addition to the subset of attributes; and (b) in responseto receipt of the electronic bid, automatically with a computer: (i)spreading the electronic bid to form a number of combinations of variousattributes; (ii) determining an overall bid price of each of thecombinations of attributes based on logically and arithmeticallyaggregating the offer prices of the bid; and (iii) electronicallysaving, in an electronic storage accessible to the computer, dataidentifying each attribute combination with its respective overall bidprice and the distributor.
 39. The method according to claim 38 furthercomprising, upon the occurrence of a visitor visitation at acommunications node, with a computer connected to the communicationnode, automatically electronically: (i) accessing a profile associatedwith the visitor containing various attributes; (ii) selecting from thedata an attribute combination that contains only attributes matching theprofile; and (iii) effecting a transfer of an advertisement to thevisitor from a distributor associated with the selected attributecombination.
 40. The method according to claim 39 wherein the attributecombination selected from the data is an attribute combination thatyields the highest overall bid price from among all of the attributecombinations in the data that contain only attributes matching theprofile.
 41. The method according to claim 39 wherein the selecting fromthe data is of multiple attribute combinations.
 42. The method accordingto claim 39 further comprising electronically storing a record of theadvertisement transferred to the visitor for intentional subsequenttransfer to the same visitor or for intentional avoidance of subsequenttransfer to the same visitor.
 43. The method according to claim 39further comprising, upon the occurrence of the visitor visitation at thecommunication node, automatically electronically enhancing the visitorprofile using at least one profile database connected to the computerconnected to the communication node.
 44. The method of claim 39 whereinthe overall bid price identifies the payment that the distributor isoffering if the visitor clicks the advertisement.
 45. The method ofclaim 39 wherein the overall bid price identifies the payment that thedistributor is offering if the visitor is shown the advertisement. 46.The method of claim 39 wherein the overall bid price identifies thepayment that the distributor is offering if the visitor buys merchandiseafter viewing the advertisement.
 47. The method of claim 38 wherein thesubset of attributes in part (a)(i) is a subset of attributes consistingof a single attribute.
 48. The method of claim 38 wherein spreading theelectronic bid to form a number of combinations of various attributescomprises creating all possible combinations of the subset of attributesand the additional individual attributes.
 49. The method of claim 38wherein the received electronic bid further includes a maximum offerprice capping the overall price for delivery of the associatedadvertisement, regardless of how many matching attributes a visitor has,and the number of combinations of various attributes in part (b) areconstrained by the maximum offer price.
 50. The method of claim 49wherein at least one of the supplemental offer prices is expressed as afraction of the associated first offer price.
 51. The method of claim 38wherein at least some attributes comprise the fact that the visitorlacks a certain characteristic.
 52. The method of claim 38 wherein atleast one of the supplemental offer prices is expressed as a fraction ofthe associated first offer price.
 53. A system for preparing data usedin transacting an advertisement transfer from an advertisementdistributor to a visitor, the system comprising an electronic storage,and a computer system coupled to the electronic storage and structured,configured, and programmed to: (a) receive over the Internet from atleast one advertisement distributor an electronic bid that includes: (i)a first offer price where a visitor to the communications node has asubset of attributes; and (ii) one or more supplemental offer prices,each for where the visitor has an individual attribute in addition tothe subset of attributes; and (b) in response to receipt of theelectronic bid, automatically: (i) spread the electronic bid to form anumber of combinations of various attributes; (ii) determine an overallbid price of each of the combinations of attributes based on logicallyand arithmetically aggregating the offer prices of the bid; and (iii)electronically save in the electronic storage data identifying eachattribute combination with its respective overall bid price and thedistributor.
 54. The system according to claim 53 further comprising acomputer connected to the communication node that is structured,configured, and programmed to, upon the occurrence of a visitorvisitation at the communications node, automatically electronically: (i)access a profile associated with the visitor containing variousattributes; (ii) select from the data an attribute combination thatcontains only attributes matching the profile; and (iii) effect atransfer of an advertisement to the visitor from a distributorassociated with the selected attribute combination.
 55. The systemaccording to claim 54 wherein the computer connected to thecommunications node is further structured, configured, and programmed toselect from the data multiple attribute combinations.
 56. The systemaccording to claim 54 wherein the computer connected to thecommunications node is further structured, configured, and programmed toelectronically store a record of the advertisement transferred to thevisitor for intentional subsequent transfer to the same visitor or forintentional avoidance of subsequent transfer to the same visitor. 57.The system according to claim 54 wherein the computer connected to thecommunications node is further structured, configured, and programmedto, upon the occurrence of the visitor visitation at the communicationnode, automatically electronically enhance the visitor profile using atleast one profile database connected to the computer connected to thecommunications node.
 58. A tangible, computer-readable storage mediumstoring a set of computer-readable instructions in one or more modulesthat, when executed by one or more processors, perform a method forpreparing data used in transacting an advertisement transfer from anadvertisement distributor to a visitor, the method performed prior tothe occurrence of a visitor visitation at a communications node, themethod comprising: (a) receiving over the Internet from at least oneadvertisement distributor an electronic bid that includes: (i) a firstoffer price where a visitor to the communications node has a subset ofattributes; and (ii) one or more supplemental offer prices, each forwhere the visitor has an individual attribute in addition to the subsetof attributes; and (b) in response to receipt of the electronic bid,automatically: (i) spreading the electronic bid to form a number ofcombinations of various attributes; (ii) determining an overall bidprice of each of the combinations of attributes based on logically andarithmetically aggregating the offer prices of the bid; and (iii)electronically saving in an electronic storage data identifying eachattribute combination with its respective overall bid price and thedistributor.
 59. The storage medium according to claim 58 furthercomprising a tangible, computer-readable storage medium storing a set ofcomputer-readable instructions in one or more modules accessible by acomputer connected to the communication node that, when executed by oneor more processors, perform the method of, upon the occurrence of avisitor visitation at a communications node, automaticallyelectronically: (i) accessing a profile associated with the visitorcontaining various attributes; (ii) selecting from the data an attributecombination that contains only attributes matching the profile; and(iii) effecting a transfer of an advertisement to the visitor from adistributor associated with the selected attribute combination.
 60. Thestorage medium according to claim 59 wherein the set ofcomputer-readable instructions accessible by the computer connected tothe communication node performs the method wherein the selecting fromthe data is of multiple attribute combinations.
 61. The storage mediumaccording to claim 59 wherein the set of computer-readable instructionsaccessible by the computer connected to the communication node performsthe method further comprising electronically storing a record of theadvertisement transferred to the visitor for intentional subsequenttransfer to the same visitor or for intentional avoidance of subsequenttransfer to the same visitor.
 62. The storage medium according to claim59 wherein the set of computer-readable instructions accessible by thecomputer connected to the communication node performs the method furthercomprising, upon the occurrence of the visitor visitation at thecommunication node, automatically electronically enhancing the visitorprofile using at least one profile database connected to the computerconnected to the communication node.